ContentType在Spring MVC中如何接收

小课堂

分享人:王蒙

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。

2.知识剖析

2.1 常用的ContentType三种类型:

1)application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码,大部分服务端语言都对这种方式有很好的支持。

2)multipart/form-data:使用表单上传文件时,必须让 form 的 enctyped 等于这个值。

3)application/json:目前最流行的请求头格式,告诉服务端消息主体是序列化后的 JSON 字符串。可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口。

2.2 @RequestMapping

@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { String[] value() default {}; RequestMethod[] method() default {}; String[] params() default {}; String[] headers() default {}; String[] consumes() default {}; String[] produces() default {}; }

value:指定请求的实际地址, 比如 /action/info之类。

method:指定请求的method类型, GET、POST、PUT、DELETE等

params:指定request中必须包含某些参数值是,才让该方法处理

headers:指定request中必须包含某些指定的header值,才能让该方法处理请求

consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回

3.常见问题

在Spring MVC中接收

4.解决方案

根据consumes值进行判断

5.编码实战

6.扩展思考

text/xml格式

7.参考文献

参考:Http请求中Content-Type讲解以及在Spring MVC中的应用

8.更多讨论

其他Http ContentType格式

鸣谢

感谢大家观看

BY:王蒙

Contact GitHub API Training Shop Blog About © 2016 GitHub, Inc. Terms Privacy Security Status He